小编典典

将回调函数传递给指令

angularjs

我试图将回调函数从控制器传递给指令。

这是回调函数代码:

$scope.onImageSelect = function(image) {
    alert('SET');
    $scope.card.image = image;
};

指令用法:

<google-image-search callback="onImageSelect" />

指令代码:

ngmod.directive('directive', function() {
    return {
        templateUrl: '/templates/template.html',
        scope: {
            callback: '&'
        }
    }
});

模板中的回调用法:

<a data-ng-click="callback(url)"></a>

但是,这给了我以下错误:

TypeError: Cannot use 'in' operator to search for 'onImageSelect'

我看过很多类似的问题,但不明白我在哪里错了。


阅读 311

收藏
2020-07-04

共1个答案

小编典典

从指令中调用表达式方法时,您需要以JSON格式传递指令中的参数,还应更正指令callback属性值以像
callback="onImageSelect(image)"

指令用法:

<google-image-search callback="onImageSelect(image)" />

指令模板

<a data-ng-click="callback({image: url})"></a>
2020-07-04